                  Geht nicht gibts nicht
                         oder
        selbst ein PC kann zu etwas ntze sein...
  bertragung von BASIC-Programmen auf fremde Computer

  Was reizt uns an der Beschftigung mit Computer-Oldies aus der 8-bit-ra?
  Es gengt uns nicht, Icons anzuklicken und stndig Updates oder die neuesten
  Programme zu erwerben, damit wir uns fr die souvernen Beherrscher modern-
  ster High-Tech halten knnen. Wir sind auch nicht sptestens aller zwei 
  Jahre der Meinung, die Hardware mte entscheidend aufgerstet oder noch
  besser komplett neu angeschafft werden.
  Stattdessen bleiben wir unseren alten Heimcomputern treu, die auf Floh-
  mrkten zu Preisen angeboten werden, die einst gerade fr ein Zehnerpack
  Disketten reichten. Warum, aus Geiz? Nein, es stellt uns nicht zufrieden,
  die Bildchen anzuklicken, die uns Bill Gates' Leute vorsetzen, wir wollen
  auch nachvollziehen, was sich im Inneren des Computers tut. Wir wollen uns
  nicht von fertigen Programmen beschftigen lassen, sondern eigene Ziel-
  stellungen so formulieren, da sie der Computer fr uns lsen kann.
  So stehen wir als Sonderlinge da, doch strt uns das? Nein, uns strt
  etwas anderes: wir Sonderlinge sind trotz eigentlich gleicher Interessen
  noch einmal in Dutzende Grppchen aufgespalten. Ein C 64-Programm ntzt
  mir am Atari nichts, mit einem ZX-Programm kann ich am Schneider nichts
  anfangen. Oder doch?
  Bei den attraktivsten Programmen wird das zutreffen, sie nutzen die Hard-
  ware-Eigenheiten und Systemroutinen des jeweiligen Computers und knnen
  hchstens mit viel Arbeit auf einen andersartigen Computer bertragen
  werden, wenn man sich mit beiden Gerten perfekt auskennt.
  Doch arbeitet nicht fast jeder Heimcomputer mit BASIC? Knnen sich BASIC-
  Programme bertragen lassen? Jein! BASIC ist nicht genormt - jeder Herstel-
  ler hat einen anderen Dialekt auf dem Markt geworfen und verwendet vor allem
  andere Token. Trotzdem, hier lt sich etwas machen, Programme knnen
  schlielich auch in Textform abgespeichert werden, und wenigstens ASCII
  konnte sich als Standard etablieren.
  Viele Heimcomputer sind CP/M-fhig, gnstige Voraussetzungen fr einen
  Austausch. brigens ist sogar so etwas wie ein Kassetten-CP/M erfunden
  worden. Dieses Konzept heit BasiCode, es stellt fr unterschiedliche
  Heimcomputer eine einheitliche Bedienoberflche und ein einheitliches
  Kassettenaufzeichnungsverfahren bereit und umschifft auch manche Klippe
  der Dialektunterschiede. BasiCode-Programme (die Freeware sind) gibt es
  fr unterschiedlichste Anwendungsgebiete, obwohl man sich zunchst
  Beschrnkungen auferlegen mute, damit die bertragbarkeit gewhrleistet
  werden konnte. Ein BasiCode-Programm, das am C 64 geschrieben und auf
  Kassette abgespeichert wurde, kann tatschlich von dieser Kassette in
  den Atari, in den ZX und in den Schneider eingelesen und dort genauso
  benutzt werden!
  Doch sind wir nicht alle bequem geworden, seit wir mit Disketten arbeiten?
  Wollen wir uns noch das Gefiepse anhren? Und wie lange das dauert! Die
  bertragung von Computer zu Computer kann auch per Diskette geschehen,
  BasiCode ist dann nur noch fr die Sprachvereinheitlichung zustndig.
  Ebenso knnen wir uns auch ganz von BasiCode lsen, aber dann mssen
  wir uns um die Sprachanpassung kmmern. Dafr bieten sich Textverarbeitungen
  an, WordStar unter CP/M oder der DOS-Editor reichen aus.
  Ein idealer Weg zur Programmbertragung ist natrlich auch die serielle
  Kopplung, doch mancher traut sich hier nicht ran, weil es ihm zu kompliziert 
  ist oder er frchtet, die Hardware knnte Schaden nehmen, weil irgendetwas
  nicht klappt.
  Fassen wir zusammen: BASIC-Programme (oder berhaupt Texte) knnen wir
  mit Disketten von einem Heimcomputer zu einem andersartigen bertragen,
  doch mssen wir die Eigenheiten der jeweiligen Gerte noch bercksich-
  tigen. Zum Beispiel kann jede ZX81-Zeile nur einen BASIC-Befehl aufnehmen,
  eine KC85-Zeile darf nicht lnger als 60 Zeichen sein. hnlich unterschied-
  lich reagieren diese beiden Computer auf die Dimensionierung einer schon di-
  mensionierten Variablen: der ZX81 dimensioniert sie eben neu, doch der KC85
  meldet einen Fehler DD ("Doubly defined array") usw.
  Natrlich gibt es noch Unmengen an unterschiedlichen Diskettenformaten,
  doch hier zeigt sich, das sogar ein PC zu etwas zu gebrauchen ist. SYDEX
  vertreibt beispielsweise das Programm 22DISK, das ziemlich alle denkbaren
  CP/M-Formate verarbeiten kann. Vielleicht reicht schon die Shareware-
  Version. Ein File wird aus einem CP/M-Format in DOS kopiert und aus diesem
  wieder in ein anderes CP/M-Format bertragen.
  Ein Problem bleiben die Disketten von Commodore-Laufwerken, hier ist das
  Aufzeichnungsprinzip vllig anders, doch es gibt drei Wege zur Lsung.
  Der erste ist die schon erwhnte serielle Kopplung. Zweitens soll auf
  einem C 128 die bertragung machbar sein, da dieser im selben Laufwerk
  beide Aufzeichnungsverfahren anwenden kann. Drittens, hier sind wir wieder
  bei dem Punkt, da auch PCs ntzlich sein knnen, besteht die Mglichkeit,
  mit Emulatorprogrammen, die es fr viele "historische" Computertypen gibt,
  Programme PC-lesbar zu bekommen oder umgekehrt.
  Wichtig ist, da das BASIC-Programm in ASCII-Form und nicht in Token abge-
  speichert wird. Bei manchem Computer gengt es, dafr die Option A fr
  den SAVE-Befehl anzugeben, bei anderen gert es weniger handlich. Zum
  Beispiel ist beim C 64 folgende Sequenz erforderlich: OPEN 1,8,1,"0:pro-
  grammname,S,W":CMD 1:LIST:CLOSE 1:CLOSE 1. Der entscheidende Punkt ist
  CMD 1, ab hier gehen die Ausgaben nicht mehr auf den Monitor, sondern auf
  das Floppy-Drive. Deswegen mssen auch die Befehle in einem Zug angegeben
  werden, sonst wrde jede Ausgabe "READY." auch auf der Diskette landen.
  Geht es um BasiCode, mu brigens statt LIST angegeben werden LIST 1000-.
  Die BASIC-Zeilen unter 1000 sind beim BasiCode-Konzept computerspezifisch,
  nur die Zeilen ab 1000 sind auf fremden Computern nutzbar. Wenn der C 64
  Programme erhalten soll, mu ein Diskettenmonitorprogramm benutzt werden,
  um aus Text- in Tokenform umzuwandeln, von vornherein ist er nicht fr
  diese Mglichkeit eingerichtet.
  Auch beim KC 85 ist das ein wenig umstndlich. Das Lesen geht noch, egal,
  ob von Tape oder Disc, das Programm wird mit LOAD#1"filename" geladen.
  Allerdings kann der KC es nur als Programm in ASCII-Form erkennen, wenn es
  die Namenserweiterung ".UUU" hat. In irgendeiner Phase mu man also fr eine
  solche Umbenennung sorgen. Der Computer liest es ein und schreibt es dabei
  auf den Monitor, whrend er es in interne Darstellungsweise umwandelt.
  Hierbei hlt das Scrolling zustzlich auf. Man kann Zeit sparen, indem man
  vor dem Laden PRINT CHR$(17) ausfhren lt, dann wird nicht mehr gescrollt,
  sondern wieder von oben berschrieben, wenn die letzte Zeile gefllt ist.
  Zwar sieht das dann eigenartig aus, doch beeintrchtigt es nicht die
  Funktion. Mit PRINT CHR$(18) kann man hinterher das Scrolling wieder zulas-
  sen.
  Das ASCII-Speichern auf dem KC ist noch aufwendiger: NULL 0:OPENO #1"file-
  name":LIST #1"filename":CLOSEO #1. Diese Befehle knnen aber auch einzeln
  eingegeben werden, bei BasiCode ist wieder, das gilt fr alle Computer,
  darauf zu achten, nur ab Zeile 1000 abzuspeichern.
  Zuletzt ein berblick ber schon erreichte Erfolge und in Bearbeitung be-
  findliche Vorhaben: ein am ZX-Spectrum abgesavtes BasiCode-Programm lie
  sich unproblematisch in den KC 85/4 einladen und war, einschlielich Teilen
  der HRG-Graphik, nutzbar. ASCII-Listings von BASIC-Programmen fr den KC 85,
  die uns auf 3 1/2"-Diskette vorlagen, benannten wir in *.UUU um, brachten
  sie via 22DISK auf ein 5 1/4"-Diskette im MicroDOS-Format (in 22DISK hat das
  Format die Abkrzung HCL1) und konnten sie mit dem LOAD#1-Befehl am KC 85/4
  einlesen und benutzen. Zwei BasiCode-Programme vom C+4, die zunchst wie oben
  beschrieben in ASCII-Form gespeichert worden waren, wurden unter Nutzung
  eines C64-Emulators in den PC geladen und ebenfalls auf dem DISK22-Weg auf
  KC-Diskette gespeichert. Der umgekehrte Weg "funktioniert mittlerweile ast-
  rein, und zwar mit Hilfe eines von James Hehl entwickelten 'Seq to Prg'-
  Konverters, der nicht allein den Directory-Eintrag von Seq zu Prg ndert,
  sondern das File wirklich Zeile fr Zeile umschreibt" - Zitat vom C+4-
  Club-Info-Redakteur Erich Laber. Anhand des umfangreichen ZX81-BASIC-Pro-
  gramms TECSTAT, das Peter Liebert-Adelt am PC mittels des ZX81-Emulators in
  ASCII-Form umwandelt, wollen wir auch die bertragung von ZX81-Programmen
  auf den KC 85 wagen. Anschlieend nehmen wir den umgekehrten Weg in Angriff,
  wobei den grten Anteil der Arbeit vermutlich der ZX81-Emulator leisten
  mu. Gut so, denn auf dem BasiCode-Weg htten wir einiges zu tun: als erstes
  RENUMBER, damit alle Zeilennummern ber 999 liegen, evtl. Aufspalten zu
  langer Zeilen und "Tarnen" von Befehlen, die als nicht vereinbart bemngelt
  werden, durch Davorsetzen von REM, und das alles nach der bertragung wieder
  rckgngig machen... Mit solchen Kunstgriffen gelang die bertragung von
  SWING.SSS vom KC 85 auf einen CPC-Computer. Dieses Programm spielt zwei-
  kanalig den Glenn-Miller-Titel "In The Mood", hier kam noch hinzu, da die
  Parameter des SOUND-Befehls umgerechnet und umsortiert werden muten.
  Trotzdem ging die bertragung durch BasiCode schneller als Abtippen des
  Programms und der vielen DATAs und war auerdem weniger fehlertrchtig.
  Ein Problem wre hier vor allem noch, da wir zwar die BasiCode-Save-Routine
  fr den ZX81, aber noch nicht die fr dessen Arbeit erforderliche Hardware-
  Erweiterung haben.

  
                                         Henning Rder, Oberhausen
                                     Peter Liebert-Adelt, Braunschweig
                                         Thomas Rademacher, Erfurt
                                         

